home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir31 / acdkit10.zip / PDS.ZIP / ACDKIT.BAS next >
BASIC Source File  |  1994-11-01  |  4KB  |  147 lines

  1. DEFINT A-Z
  2. REM $DYNAMIC
  3.  
  4.     REM $INCLUDE: '.\ACDKIT.BI'
  5.  
  6.     DECLARE FUNCTION TimeStr$ (BYVAL mins%, BYVAL secs%)
  7.     DECLARE SUB UpdateDisplay ()
  8.     
  9.     CONST FALSE% = 0
  10.     CONST TRUE% = NOT FALSE%
  11.  
  12.     DIM SHARED tracklist(0) AS trackinfo     ' music track information array
  13.     DIM SHARED cd AS cdInfoTYPE              ' track info
  14.     DIM SHARED cddrive AS INTEGER            ' first cdrom drive
  15.     DIM SHARED curTrack AS INTEGER           ' current track number
  16.  
  17.     curTrack = 1
  18.  
  19.     IF IsMscdex = FALSE THEN
  20.         CLS : PRINT "MSCDEX.EXE driver is not installed."
  21.         SLEEP 3
  22.         END
  23.     END IF
  24.  
  25.     cddrive = GetFirstCdrom%                 ' get the first cdrom drive
  26.  
  27.     dummy% = cdMediaChanged(cddrive%)        ' clear changed flag
  28.  
  29. RESTART:
  30.  
  31.     CLS
  32.  
  33.     IF IsAudio(cddrive) = FALSE THEN        ' is this an audio cd?
  34.         PRINT "The inserted cd is not an audio cd."
  35.         PRINT "Please insert an audio cd and restart."
  36.         SLEEP 3
  37.         END
  38.     END IF
  39.  
  40.     cdInit cddrive%, tracklist()             ' read cd information
  41.  
  42.     IF (cd.status AND CDPLAYING) <> CDPLAYING THEN
  43.         cdSeek cddrive%, 1, tracklist()  ' seek to first song
  44.     END IF
  45.  
  46.     PRINT "┌────────────────────────────────────┐"
  47.     PRINT "│          AUDIO CD TOOLKIT          │"
  48.     PRINT "├────────────────────┬───────┬───────┤"
  49.     PRINT "│ Audio Track(s)     │       │       │"
  50.     PRINT "├────────────────────┼───────┼───────┤"
  51.     PRINT "│ Current Audio Time │       │       │"
  52.     PRINT "├────────────────────┼───────┼───────┤"
  53.     PRINT "│ Total Audio Time   │       │       │"
  54.     PRINT "├────────────────────┴───────┴───────┤"
  55.     PRINT "│   P      Play Audio Track          │"
  56.     PRINT "│   S      Stop Audio Playback       │"
  57.     PRINT "│   SPACE  Pause/Resume Audio Track  │"
  58.     PRINT "│   +      Next Audio Track          │"
  59.     PRINT "│   -      Previous Audio Track      │"
  60.     PRINT "│   TAB    Open/Close CD-ROM Door    │"
  61.     PRINT "│   ESC    End                       │"
  62.     PRINT "└────────────────────────────────────┘"
  63.  
  64.     DO
  65.  
  66.         LOCATE 19, 1
  67.  
  68.         IF (cd.status AND CDPAUSED) = CDPAUSED THEN
  69.             PRINT "PAUSED "
  70.         ELSEIF (cd.status AND CDPLAYING) = CDPLAYING THEN
  71.             PRINT "PLAYING"
  72.         ELSE
  73.             PRINT "       "
  74.         END IF
  75.  
  76.         k$ = UCASE$(INKEY$)
  77.  
  78.         SELECT CASE k$
  79.  
  80.             CASE CHR$(27)
  81.                 END
  82.  
  83.             CASE "P"
  84.                 cdPlay cddrive%, curTrack, 99, tracklist()
  85.  
  86.             CASE "S"
  87.                 cdStop cddrive%
  88.  
  89.             CASE " "
  90.                 IF (cd.status AND CDPAUSED) = CDPAUSED THEN
  91.                     cdResume cddrive%
  92.                 ELSE
  93.                     cdPause cddrive%
  94.                 END IF
  95.  
  96.             CASE "+"
  97.                 curTrack = curTrack MOD UBOUND(tracklist) + 1
  98.                 cdPlay cddrive%, curTrack, 99, tracklist()
  99.  
  100.             CASE "-"
  101.                 curTrack = curTrack - 1
  102.                 IF curTrack = 0 THEN
  103.                     curTrack = UBOUND(tracklist)
  104.                 END IF
  105.                 cdPlay cddrive%, curTrack, 99, tracklist()
  106.  
  107.             CASE CHR$(9)
  108.                 IF (cd.status AND CDOPEN) = CDOPEN THEN
  109.                     cdDoor cddrive%, 2
  110.                 ELSE
  111.                     cdStop cddrive%
  112.                     cdDoor cddrive%, 1
  113.                 END IF
  114.  
  115.             CASE ELSE
  116.                 cdGetInfo cddrive%, 0, cd, tracklist()
  117.                 curTrack = cd.track
  118.                 UpdateDisplay
  119.         END SELECT
  120.  
  121.     LOOP
  122.  
  123. REM $STATIC
  124. FUNCTION TimeStr$ (BYVAL mins%, BYVAL secs%)
  125.  
  126.     IF secs% = 254 THEN
  127.         secs% = 0
  128.     END IF
  129.  
  130.     text$ = RIGHT$("00" + LTRIM$(STR$(mins%)), 2) + ":" + RIGHT$("00" + LTRIM$(STR$(secs%)), 2)
  131.  
  132.     TimeStr$ = text$
  133.  
  134. END FUNCTION
  135.  
  136. SUB UpdateDisplay
  137.  
  138.     LOCATE 4, 33: PRINT UBOUND(tracklist)
  139.     LOCATE 8, 32: PRINT TimeStr$(cd.cdMins, cd.cdSecs)
  140.     LOCATE 4, 25: PRINT USING "##"; cd.track
  141.     LOCATE 6, 32: PRINT TimeStr$(cd.cdMin, cd.cdSec)
  142.     LOCATE 6, 24: PRINT TimeStr$(cd.TrackMin, cd.TrackSec)
  143.     LOCATE 8, 24: PRINT TimeStr$(cd.TrackMins, cd.TrackSecs)
  144.  
  145. END SUB
  146.  
  147.